﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DADOS.usuario
{
    public class metCuidador
    {
        DB_PROAD banco = new DB_PROAD();

        private void FecharConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Close();
        }

        private void InicializarConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Open();
        }

        public void Incluir(TB_CUIDADOR objCuidador)
        {
            try
            {
                InicializarConexao(banco);
                objCuidador.DT_INCLUSAO = DateTime.Now;
                banco.AddToTB_CUIDADOR(objCuidador);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public List<TB_CUIDADOR> Lista(int intCodUsuario)
        {
            try
            {
                InicializarConexao(banco);
                var list = banco.TB_CUIDADOR.Where(q => q.CO_USUARIO == intCodUsuario).ToList();
                return list;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public TB_CUIDADOR GetCuidadorByCod(int intCodCuid)
        {
            try
            {
                InicializarConexao(banco);
                var list = banco.TB_CUIDADOR.Where(q => q.CO_CUIDADOR == intCodCuid).FirstOrDefault();
                return list;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public void Alterar(TB_CUIDADOR FormCuidador)
        {
            try
            {
                InicializarConexao(banco);

                var objCuidador = banco.TB_CUIDADOR.Where(q => q.CO_CUIDADOR == FormCuidador.CO_CUIDADOR).FirstOrDefault();

                objCuidador.CO_USUARIO = FormCuidador.CO_USUARIO;
                objCuidador.CO_PROFISSIONAL = FormCuidador.CO_PROFISSIONAL;
                objCuidador.NO_CUIDADOR = FormCuidador.NO_CUIDADOR;
                objCuidador.NR_IDADE = FormCuidador.NR_IDADE;
                objCuidador.NR_SEXO = FormCuidador.NR_SEXO;
                objCuidador.NR_PARENTESCO = FormCuidador.NR_PARENTESCO;
                objCuidador.NR_RESIDE = FormCuidador.NR_RESIDE;
                
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public void Excluir(int intCodCuidador)
        {
            try
            {
                InicializarConexao(banco);

                var objCuidador = banco.TB_CUIDADOR.Where(q => q.CO_CUIDADOR == intCodCuidador).FirstOrDefault();
                objCuidador.NR_STATUS = 0;
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public Boolean ExisteEntrevista(int intCodCuidador)
        {
            try
            {
                InicializarConexao(banco);

                var objCuidador = banco.TB_ENTREVISTA_CUIDADOR.Where(q => q.CO_CUIDADOR == intCodCuidador).FirstOrDefault();

                if (objCuidador != null)
                {
                    return true;
                }else
                {
                    return false;
                }

            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }
    }
}
